//#define _CRT_SECURE_NO_WARNINGS
//#include"cpp.h"
//
//string multify(string a, string b)
//{
//	reverse(a.begin(), a.end());
//	reverse(b.begin(), b.end());
//	int az = a.size(); int bz = b.size();
//	vector<int>arr(az + bz);
//	for (int i = 0; i < az; i++)
//	{
//		int tem1 = a[i] - '0';
//		for (int j = 0; j < bz; j++)
//		{
//			int tem2 = b[j] - '0';
//			arr[i + j] += tem1 * tem2;
//		}
//	}
//	string ret;
//	int count = 0;
//	for (int i = 0; i < arr.size(); i++)
//	{
//		int tem3 = arr[i] + count;
//		ret.push_back(tem3 % 10 + '0');
//		count = tem3 / 10;
//	}
//	while (count)
//	{
//		ret.push_back(count % 10 + '0');
//		count /= 10;
//	}
//	while (ret.size() > 1 && ret[ret.size() - 1] == '0')
//	{
//		ret.pop_back();
//	}
//	reverse(ret.begin(), ret.end());
//	return ret;
//}
//
//string add(string a, string b)
//{
//	int i = a.size()-1;
//	int j = b.size()-1;
//	int count = 0;
//	string ret;
//	while (i >= 0 || j >= 0 || count)
//	{
//		count += i >= 0 ? a[i--] - '0' : 0;
//		count += j >= 0 ? b[j--] - '0' : 0;
//		ret.push_back(count % 10 + '0');
//		count /= 10;
//	}
//	reverse(ret.begin(), ret.end());
//	return ret;
//}
//int main()
//{
//	int n; string s; cin >> n>>s;
//	string ret="2";
//	for (int i = 1; i < n; i++)
//	{
//		ret = multify(ret, "2");
//	}
//	int pos = s.find('.');
//	int xiaoshu = s.size() - pos-1;
//	s.erase(pos,1);
//	string ret1 = multify(ret, s);
//	string s1 = ret1.substr(0, ret1.size()-xiaoshu);
//	string s2 = ret1.substr(ret1.size()-xiaoshu, xiaoshu);
//	if (s2[0] >= '5')cout << add(s1, "1");
//	else cout << s1;
//
//}